---
id: 类型别名
title: 类型别名
---

顾名思义就是类型的另外一个名字，这个新名字由我们来起。  

```ts
// ------ 假如我们的id有可能是数字，也有可能是字符串
type idType = number | string;

// ------ boolean 类型改名字
type boolType = boolean;

// ------ 合并Name 和 Age 两个接口
interface Name {
  name: string;
}

interface Age {
  age: number;
}

type User = Age & Name;

let user: User = { name: "", age: 2 };


// ------ 使用交叉运算符扩展 UserInfo接口
type UserInfo = {
  readonly name: string;
  age: number;
};

type ExtraInfo = UserInfo & { school: string };

let user: ExtraInfo = { name: "张三", age: 2, school: "张三的母校" };

// ------ 也可以直接声明一个类型，值是对象，这里就拥有了接口的功能
type userInfo = {
  readonly name: string;
  age: number;
  sex?: number;
  [arbitrarily: string]: any;
};
```

创建一个类型别名就像给一个普通变量赋值一样，只是使用的是 type 关键字，值是 ts 中的类型。


& 是[交叉运算符](/docs/ts/types/交叉类型)